public class Leet111 {
/**
 * 给定一个二叉树，找出其最小深度。
 * 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
 * 说明：叶子节点是指没有子节点的节点。
 */

  public class TreeNode {
      int val;
      TreeNode left;
      TreeNode right;
      TreeNode() {}
      TreeNode(int val) { this.val = val; }
      TreeNode(int val, TreeNode left, TreeNode right) {
          this.val = val;
          this.left = left;
          this.right = right;
      }
  }
    public int minDepth(TreeNode root) {
                if(root == null) {
                    return 0;
                }
                if(root.left == null && root.right == null) {
                    return 1;
                }
                int ans = Integer.MAX_VALUE;
                if(root.left != null) {
                    ans = Math.min(minDepth(root.left), ans);
                }
                if(root.right != null) {

                    ans = Math.min(minDepth(root.right), ans);
                }
                return ans + 1;
    }
}

